The present invention relates generally to a system for allowing devices connected to a network to collaborate with each other so as to transmit and receive data packets without impairment on the network.
Ethernet and packet-switched Internet Protocol (IP) networks are systems for transmitting data between different points. These systems are known as “contention-based” systems. That is, all transmitters contend for network resources. All transmitters may transmit simultaneously. If they do, then network resources may be oversubscribed. When this happens, data may be delayed or lost, resulting in network impairment.
As shown in FIG. 1, a conventional network comprises a plurality of Local Area Network (LAN) endpoints, such as computers connected to an Ethernet LAN. The endpoints are coupled to one or more LAN switches 102, which connect through another part of the network to one or more additional LAN endpoints 103. When endpoint 101 sends packets to endpoint 103, the packets are sent through LAN switch 102, which also handles packets from other LAN endpoints. If too many packets are simultaneously transmitted by the other endpoints to 103, LAN switch 102 may have a queue overflow, causing packets to be lost. (The word “packets” will be used to refer to datagrams in a LAN or Wide Area Network (WAN) environment. In a LAN environment, packets are sometimes called “frames.” In a packet-switched WAN environment, packet-switching devices are normally referred to as “routers.”).
FIG. 2 illustrates the nature of the problem of dropped packets, which can occur in a LAN environment as well as a WAN environment. During periods where multiple endpoints are simultaneously transmitting packets on the network, the LAN switch 102 may become overloaded, such that some packets are discarded. This is typically caused by an internal queue in the LAN switch becoming full and thus becoming unable to accept new packets until the outgoing packets have been removed from the queue. This creates a problem in that transmitting endpoints cannot be guaranteed that their packets will arrive, necessitating other solutions such as the use of guaranteed-delivery protocols such as Transmission Control Protocol (TCP). Such solutions may be inappropriate for streaming video or other real-time applications, which cannot wait for retransmission of packets.
Another solution, proposed in my previous U.S. application Ser. No. 10/663,378, involves scheduling the transmission of packets by the originating endpoints based on an empirical evaluation of network congestion conditions. A transmission interval is partitioned into discrete frames and subframes, and each endpoint schedules packets for delivery during time slots in the subframes corresponding to empirically determined conditions of minimal network congestion. That scheme relies on the existence of multiple priority levels for packets in the network, such that packets can be sent using a lower-level “discovery” priority level to perform the empirical determination without affecting the higher-priority data traffic.
Some networks and devices cannot support multiple priority levels for data packets. For example, some packet switches may support only one level of packet priority (i.e., two queues: one for prioritized packets and another for non-prioritized packets), making such a scheme difficult to implement. Consequently, the present invention proposes a different solution to using a contention-based network, such as an Ethernet LAN or a WAN packet switching network, to transmit time-sensitive data such as streaming video.